package com.cd2cd.domain.gen;

import java.io.Serializable;
import java.util.Date;

public class SuperProTableColumn implements Serializable {
    private Long id;

    private Long tableId;

    /**
     * 字段名称
     */
    private String name;

    /**
     * 注释
     */
    private String comment;

    /**
     * 数据类型
     */
    private String mysqlType;

    /**
     * 默认值
     */
    private String defaultValue;

    /**
     * 是否充许为空
     */
    private String allowNull;

    /**
     * 主键:PRI，搜索:MUL，唯一:UNI
     */
    private String keyType;

    /**
     * 额外信息:AUTO_INCREMENT
     */
    private String extra;

    private Date createTime;

    private Date updateTime;

    /**
     * list查询是否返回 yes no
     */
    private String l;

    /**
     * 创建是否必传 yes no
     */
    private String c;

    /**
     * 更新是否必传 yes no
     */
    private String u;

    /**
     * 读取是否返回 yes no
     */
    private String r;

    /**
     * c,u验证规则 notNull,email,qq,phone
     */
    private String v;

    /**
     * l查询规则  相等EqualTo,不相等NotEqualTo,小于LessThan,大于GreaterThan,小于等于LessThanOrEqualTo,大于等于GreaterThanOrEqualTo,之间Between,包含In,不包含NotIn
     */
    private String q;

    /**
     * 表关联
     */
    private String relationJson;

    /**
     * label展示
     */
    private String label;

    /**
     * 字典id
     */
    private Integer dictId;

    /**
     * 控件类型 dateTime,password,text,digit,textarea,select,checkbox,radio
     */
    private String formType;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getTableId() {
        return tableId;
    }

    public void setTableId(Long tableId) {
        this.tableId = tableId;
    }

    /**
     * 字段名称
     */
    public String getName() {
        return name;
    }

    /**
     * 字段名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 注释
     */
    public String getComment() {
        return comment;
    }

    /**
     * 注释
     */
    public void setComment(String comment) {
        this.comment = comment;
    }

    /**
     * 数据类型
     */
    public String getMysqlType() {
        return mysqlType;
    }

    /**
     * 数据类型
     */
    public void setMysqlType(String mysqlType) {
        this.mysqlType = mysqlType;
    }

    /**
     * 默认值
     */
    public String getDefaultValue() {
        return defaultValue;
    }

    /**
     * 默认值
     */
    public void setDefaultValue(String defaultValue) {
        this.defaultValue = defaultValue;
    }

    /**
     * 是否充许为空
     */
    public String getAllowNull() {
        return allowNull;
    }

    /**
     * 是否充许为空
     */
    public void setAllowNull(String allowNull) {
        this.allowNull = allowNull;
    }

    /**
     * 主键:PRI，搜索:MUL，唯一:UNI
     */
    public String getKeyType() {
        return keyType;
    }

    /**
     * 主键:PRI，搜索:MUL，唯一:UNI
     */
    public void setKeyType(String keyType) {
        this.keyType = keyType;
    }

    /**
     * 额外信息:AUTO_INCREMENT
     */
    public String getExtra() {
        return extra;
    }

    /**
     * 额外信息:AUTO_INCREMENT
     */
    public void setExtra(String extra) {
        this.extra = extra;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * list查询是否返回 yes no
     */
    public String getL() {
        return l;
    }

    /**
     * list查询是否返回 yes no
     */
    public void setL(String l) {
        this.l = l;
    }

    /**
     * 创建是否必传 yes no
     */
    public String getC() {
        return c;
    }

    /**
     * 创建是否必传 yes no
     */
    public void setC(String c) {
        this.c = c;
    }

    /**
     * 更新是否必传 yes no
     */
    public String getU() {
        return u;
    }

    /**
     * 更新是否必传 yes no
     */
    public void setU(String u) {
        this.u = u;
    }

    /**
     * 读取是否返回 yes no
     */
    public String getR() {
        return r;
    }

    /**
     * 读取是否返回 yes no
     */
    public void setR(String r) {
        this.r = r;
    }

    /**
     * c,u验证规则 notNull,email,qq,phone
     */
    public String getV() {
        return v;
    }

    /**
     * c,u验证规则 notNull,email,qq,phone
     */
    public void setV(String v) {
        this.v = v;
    }

    /**
     * l查询规则  相等EqualTo,不相等NotEqualTo,小于LessThan,大于GreaterThan,小于等于LessThanOrEqualTo,大于等于GreaterThanOrEqualTo,之间Between,包含In,不包含NotIn
     */
    public String getQ() {
        return q;
    }

    /**
     * l查询规则  相等EqualTo,不相等NotEqualTo,小于LessThan,大于GreaterThan,小于等于LessThanOrEqualTo,大于等于GreaterThanOrEqualTo,之间Between,包含In,不包含NotIn
     */
    public void setQ(String q) {
        this.q = q;
    }

    /**
     * 表关联
     */
    public String getRelationJson() {
        return relationJson;
    }

    /**
     * 表关联
     */
    public void setRelationJson(String relationJson) {
        this.relationJson = relationJson;
    }

    /**
     * label展示
     */
    public String getLabel() {
        return label;
    }

    /**
     * label展示
     */
    public void setLabel(String label) {
        this.label = label;
    }

    /**
     * 字典id
     */
    public Integer getDictId() {
        return dictId;
    }

    /**
     * 字典id
     */
    public void setDictId(Integer dictId) {
        this.dictId = dictId;
    }

    /**
     * 控件类型 dateTime,password,text,digit,textarea,select,checkbox,radio
     */
    public String getFormType() {
        return formType;
    }

    /**
     * 控件类型 dateTime,password,text,digit,textarea,select,checkbox,radio
     */
    public void setFormType(String formType) {
        this.formType = formType;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", tableId=").append(tableId);
        sb.append(", name=").append(name);
        sb.append(", comment=").append(comment);
        sb.append(", mysqlType=").append(mysqlType);
        sb.append(", defaultValue=").append(defaultValue);
        sb.append(", allowNull=").append(allowNull);
        sb.append(", keyType=").append(keyType);
        sb.append(", extra=").append(extra);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", l=").append(l);
        sb.append(", c=").append(c);
        sb.append(", u=").append(u);
        sb.append(", r=").append(r);
        sb.append(", v=").append(v);
        sb.append(", q=").append(q);
        sb.append(", relationJson=").append(relationJson);
        sb.append(", label=").append(label);
        sb.append(", dictId=").append(dictId);
        sb.append(", formType=").append(formType);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SuperProTableColumn other = (SuperProTableColumn) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getTableId() == null ? other.getTableId() == null : this.getTableId().equals(other.getTableId()))
            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
            && (this.getComment() == null ? other.getComment() == null : this.getComment().equals(other.getComment()))
            && (this.getMysqlType() == null ? other.getMysqlType() == null : this.getMysqlType().equals(other.getMysqlType()))
            && (this.getDefaultValue() == null ? other.getDefaultValue() == null : this.getDefaultValue().equals(other.getDefaultValue()))
            && (this.getAllowNull() == null ? other.getAllowNull() == null : this.getAllowNull().equals(other.getAllowNull()))
            && (this.getKeyType() == null ? other.getKeyType() == null : this.getKeyType().equals(other.getKeyType()))
            && (this.getExtra() == null ? other.getExtra() == null : this.getExtra().equals(other.getExtra()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getL() == null ? other.getL() == null : this.getL().equals(other.getL()))
            && (this.getC() == null ? other.getC() == null : this.getC().equals(other.getC()))
            && (this.getU() == null ? other.getU() == null : this.getU().equals(other.getU()))
            && (this.getR() == null ? other.getR() == null : this.getR().equals(other.getR()))
            && (this.getV() == null ? other.getV() == null : this.getV().equals(other.getV()))
            && (this.getQ() == null ? other.getQ() == null : this.getQ().equals(other.getQ()))
            && (this.getRelationJson() == null ? other.getRelationJson() == null : this.getRelationJson().equals(other.getRelationJson()))
            && (this.getLabel() == null ? other.getLabel() == null : this.getLabel().equals(other.getLabel()))
            && (this.getDictId() == null ? other.getDictId() == null : this.getDictId().equals(other.getDictId()))
            && (this.getFormType() == null ? other.getFormType() == null : this.getFormType().equals(other.getFormType()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getTableId() == null) ? 0 : getTableId().hashCode());
        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
        result = prime * result + ((getComment() == null) ? 0 : getComment().hashCode());
        result = prime * result + ((getMysqlType() == null) ? 0 : getMysqlType().hashCode());
        result = prime * result + ((getDefaultValue() == null) ? 0 : getDefaultValue().hashCode());
        result = prime * result + ((getAllowNull() == null) ? 0 : getAllowNull().hashCode());
        result = prime * result + ((getKeyType() == null) ? 0 : getKeyType().hashCode());
        result = prime * result + ((getExtra() == null) ? 0 : getExtra().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getL() == null) ? 0 : getL().hashCode());
        result = prime * result + ((getC() == null) ? 0 : getC().hashCode());
        result = prime * result + ((getU() == null) ? 0 : getU().hashCode());
        result = prime * result + ((getR() == null) ? 0 : getR().hashCode());
        result = prime * result + ((getV() == null) ? 0 : getV().hashCode());
        result = prime * result + ((getQ() == null) ? 0 : getQ().hashCode());
        result = prime * result + ((getRelationJson() == null) ? 0 : getRelationJson().hashCode());
        result = prime * result + ((getLabel() == null) ? 0 : getLabel().hashCode());
        result = prime * result + ((getDictId() == null) ? 0 : getDictId().hashCode());
        result = prime * result + ((getFormType() == null) ? 0 : getFormType().hashCode());
        return result;
    }
}